package cn.iocoder.yudao.module.system.api.logger;

import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO;
import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import jakarta.annotation.Resource;

/**
 * 登录日志的 API 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
public class LoginLogApiImpl implements LoginLogApi {

    @Resource
    private LoginLogService loginLogService;

    @Override
    public void createLoginLog(LoginLogCreateReqDTO reqDTO) {
        loginLogService.createLoginLog(reqDTO);
    }

    @Override
    public PageResult<LoginLogRespDTO> getLoginLogPage(Long userId, Integer pageNo, Integer pageSize) {
        LoginLogPageReqVO reqVO = new LoginLogPageReqVO();
        reqVO.setUserType(UserTypeEnum.MEMBER.getValue());
        reqVO.setUserId(userId);
        reqVO.setPageNo(pageNo);
        reqVO.setPageSize(pageSize);
        PageResult<LoginLogDO> loginLogPage = loginLogService.getLoginLogPage(reqVO);
        return BeanUtils.toBean(loginLogPage, LoginLogRespDTO.class);
    }
}
